package com.atguigu.java;

import org.junit.Test;

import java.util.Comparator;
import java.util.TreeMap;

/**
 * @author yihu
 * @create 2021-03-06 16:05
 * @email: 1057202547@qq.com
 * @dec:
 */
public class TreeMapTest {

    //向TreeMap中添加key-value，要求key必须是由同一个类创建的对象
    //因为要按照key进行排序：自然排序 、定制排序
    //自然排序

    @Test
    public  void test1(){
        TreeMap map = new TreeMap();
        //自然排序
        User u1 = new User("Tom",23);
        User u2 = new User("Jerry",32);
        User u3 = new User("Jack",20);
        User u4 = new User("Rose",18);

        map.put(u1,98);
        map.put(u2,89);
        map.put(u3,76);
        map.put(u4,100);

        System.out.println(map);

    }

    //定制排序
    @Test
    public  void test2(){
        TreeMap map = new TreeMap(new Comparator() {
            @Override
            public int compare(Object o1, Object o2) {
                if(o1 instanceof  User  && o2 instanceof User){
                    User u1 = (User) o1;
                    User u2 = (User) o2;
                    if(u1.getName().compareTo(u2.getName()) !=0){
                        return u1.getName().compareTo(u2.getName()) ;
                    }else {
                       return u1.getAge() - u2.getAge();
                    }

                }
                throw  new RuntimeException("传入的数据类型不一致");
            }
        });
        //自然排序
        User u1 = new User("Tom",23);
        User u2 = new User("Jerry",32);
        User u3 = new User("Jack",20);
        User u4 = new User("Rose",18);

        map.put(u1,98);
        map.put(u2,89);
        map.put(u3,76);
        map.put(u4,100);

        System.out.println(map);

    }

}
